# 对象

a = int(10)  # 创建一个int类的实例
b = str('hello')  # 创建一个str类的实例


class Person:
    # 在类的代码块中，我们可以定义变量和函数
    # 在类中我们所定义的变量，将会成为所有的实例的公共属性
    # 所有实例都可以访问这些变量
    name = 'swk'  # 公共属性，所有实例都可以访问

    # 在类中也可以定义函数，类中的定义的函数，我们称为方法
    # 这些方法可以通过该类的所有实例来访问
    def say_hello(self):
        # 方法每次被调用时，解析器都会自动传递第一个实参
        # 第一个参数，就是调用方法的对象本身，
        #   如果是p1调的，则第一个参数就是p1对象
        #   如果是p2调的，则第一个参数就是p2对象
        # 一般我们都会将这个参数命名为self

        # say_hello()这个方法，可以显示如下格式的数据：
        #   在方法中不能直接访问类中的属性
        print('你好！我是 %s' % self.name)


# 创建类的实例
p1 = Person()

# 修改属性前，输出：你好！我是 swk
p1.say_hello()
p1.name = '猪八戒'
# 修改属性前，输出：你好！我是 猪八戒
p1.say_hello()